package to4.client;

import java.util.ArrayList;
import java.util.Date;

import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

public class metWijzigVoorkeuren {
	private String labfiets;
	private String labroken;
	private String labreizen;
	private int aantalCheckBox;
	private boolean[] provincies = new boolean[12];
	private MetHome MH;
	public metWijzigVoorkeuren(MetHome thema5){
		this.MH = thema5;
	}

	public Panel createPage(final String email){
		FlowPanel eindPanel = new FlowPanel();

		VerticalPanel vertical1 = new VerticalPanel();
		HorizontalPanel horizon0 = new HorizontalPanel();
		HorizontalPanel horizon1 = new HorizontalPanel();
		HorizontalPanel horizon2 = new HorizontalPanel();
		HorizontalPanel horizon3 = new HorizontalPanel();
		HorizontalPanel horizon4 = new HorizontalPanel();
		HorizontalPanel horizon5 = new HorizontalPanel();
		HorizontalPanel horizon6 = new HorizontalPanel();
		HorizontalPanel horizon7 = new HorizontalPanel();
		HorizontalPanel horizon8 = new HorizontalPanel();
		HorizontalPanel horizon11 = new HorizontalPanel();
		HorizontalPanel horizon12 = new HorizontalPanel();
		HorizontalPanel horizon14 = new HorizontalPanel();
		HorizontalPanel horizon15 = new HorizontalPanel();

		final Image goed0 = new Image("vink.png");
		goed0.setVisible(true);
		final Image fout0 = new Image("kruis.png");
		fout0.setVisible(false);
		final Image goed1 = new Image("vink.png");
		goed1.setVisible(true);
		final Image fout1 = new Image("kruis.png");
		fout1.setVisible(false);
		final Image goed3 = new Image("vink.png");
		goed3.setVisible(true);
		final Image fout3 = new Image("kruis.png");
		fout3.setVisible(false);
		final Image goed4 = new Image("vink.png");
		goed4.setVisible(true);
		final Image fout4 = new Image("kruis.png");
		fout4.setVisible(false);
		final Image goed5 = new Image("vink.png");
		goed5.setVisible(true);
		final Image fout5 = new Image("kruis.png");
		fout5.setVisible(false);
		final Image goed6 = new Image("vink.png");
		goed6.setVisible(true);
		final Image fout6 = new Image("kruis.png");
		fout6.setVisible(false);
		final Image goed7 = new Image("vink.png");
		goed7.setVisible(true);
		final Image fout7 = new Image("kruis.png");
		fout7.setVisible(false);
		final Image fout8 = new Image("kruis.png");
		fout8.setVisible(false);
		final Image goed8 = new Image("vink.png");
		goed8.setVisible(true);
		final Image goed9 = new Image("vink.png");
		goed9.setVisible(true);
		final Image fout9 = new Image("kruis.png");
		fout9.setVisible(false);
		final Image goed13 = new Image("vink.png");
		goed13.setVisible(true);
		final Image fout13 = new Image("kruis.png");
		fout13.setVisible(false);
		final Image goed14 = new Image("vink.png");
		goed14.setVisible(true);
		final Image fout14 = new Image("kruis.png");
		fout14.setVisible(false);
		final Image goed15 = new Image("vink.png");
		goed15.setVisible(true);
		final Image fout15 = new Image("kruis.png");
		fout15.setVisible(false);
		final Image goed16 = new Image("vink.png");
		goed16.setVisible(true);
		final Image fout16 = new Image("kruis.png");
		fout16.setVisible(false);
		final Image goed17 = new Image("vink.png");
		goed17.setVisible(true);
		final Image goed18 = new Image("vink.png");
		goed18.setVisible(true);
		final Image goed19 = new Image("vink.png");
		goed19.setVisible(true);

		Label titleLab = new Label("Wijzig hieronder uw gegevens");
		titleLab.addStyleName("titleLabZonderWijzigVoorkeuren");
		Label voornaam = new Label("Voornaam");
		voornaam.setStyleName("registreerVoornaamLabel");
		final TextBox voornaamText = new TextBox();
		voornaamText.setStyleName("registreerVoornaamText");

		voornaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (voornaamText.getText().matches("[a-z]")) {
					String s = voornaamText.getText();
					voornaamText.setText(s.toUpperCase());
				}
				if (voornaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !voornaamText.getText().equals("")) {
					goed0.setVisible(true);
					fout0.setVisible(false);
				}
				else {
					fout0.setVisible(true);
					goed0.setVisible(false);
				}
			} 
		});

		Label achternaam = new Label("Achternaam");
		achternaam.setStyleName("registreerLabelOverig");
		final TextBox achternaamText = new TextBox();
		achternaamText.setStyleName("registreerVoornaamText");

		achternaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (achternaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !achternaamText.getText().equals("")) {
					goed1.setVisible(true);
					fout1.setVisible(false);
				}
				else {
					fout1.setVisible(true);
					goed1.setVisible(false);
				}
			}
		});

		Label straatnaam = new Label("Straatnaam");
		straatnaam.setStyleName("registreerLabelOverig");

		final TextBox straatnaamText = new TextBox();
		straatnaamText.setStyleName("registreerVoornaamText");
		straatnaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (straatnaamText.getText().matches("[a-z]")) {
					String s = straatnaamText.getText();
					straatnaamText.setText(s.toUpperCase());
				}
				if (straatnaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !straatnaamText.getText().equals("")) {
					goed3.setVisible(true);
					fout3.setVisible(false);
				}
				else {
					fout3.setVisible(true);
					goed3.setVisible(false);
				}
			}
		});

		Label huisnummer = new Label("Huisnummer");
		huisnummer.setStyleName("registreerLabelOverig");
		final TextBox huisnummerText = new TextBox();
		huisnummerText.setStyleName("registreerVoornaamText");
		huisnummerText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (huisnummerText.getText().matches("^\\d+(bis)|\\d+[a-z]|\\d+$") && !huisnummerText.getText().equals("")) {
					goed4.setVisible(true);
					fout4.setVisible(false);
				}
				else {
					fout4.setVisible(true);
					goed4.setVisible(false);
				}
			}
		});

		Label postcode = new Label("Postcode");
		postcode.setStyleName("registreerLabelOverig");
		final TextBox postcodeText = new TextBox();
		postcodeText.setStyleName("registreerVoornaamText");
		postcodeText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {

				if (postcodeText.getText().matches("^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$") && !postcodeText.getText().equals("")) {
					goed5.setVisible(true);
					fout5.setVisible(false);
				}
				else {
					fout5.setVisible(true);
					goed5.setVisible(false);
				}
			}
		});

		Label woonplaats = new Label("Woonplaats");
		woonplaats.setStyleName("registreerLabelOverig");
		final TextBox woonplaatsText = new TextBox();
		woonplaatsText.setStyleName("registreerVoornaamText");
		woonplaatsText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (woonplaatsText.getText().matches("[a-z]")) {
					String s = woonplaatsText.getText();
					woonplaatsText.setText(s.toUpperCase());
				}
				if (woonplaatsText.getText().matches("[0-9]+") || woonplaatsText.getText().equals("")) {

					fout6.setVisible(true);
					goed6.setVisible(false);
				}
				else {
					goed6.setVisible(true);
					fout6.setVisible(false);
				}
			}

		});
		Label provincie = new Label("Provincie");
		provincie.setStyleName("registreerLabelOverig");
		final ListBox provincielijst = new ListBox();
		provincielijst.addItem("");
		provincielijst.addItem("Drenthe");
		provincielijst.addItem("Flevoland");
		provincielijst.addItem("Friesland");
		provincielijst.addItem("Gelderland");
		provincielijst.addItem("Groningen");
		provincielijst.addItem("Limburg");
		provincielijst.addItem("Noord-Brabant");
		provincielijst.addItem("Noord-Holland");
		provincielijst.addItem("Overijssel");
		provincielijst.addItem("Utrecht");
		provincielijst.addItem("Zeeland");
		provincielijst.addItem("Zuid-Holland");
		provincielijst.setStyleName("registeerListProv");

		provincielijst.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (provincielijst.getValue(provincielijst.getSelectedIndex()).equals("")) {
					fout9.setVisible(true);
					goed9.setVisible(false);
				}
				else {
					goed9.setVisible(true);
					fout9.setVisible(false);
				}
			}
		});

		Label telefoon = new Label("Telefoonnummer");
		telefoon.setStyleName("registreerLabelOverig");
		final TextBox telefoonText = new TextBox();
		telefoonText.addKeyUpHandler(new KeyUpHandler(){

			public void onKeyUp(KeyUpEvent event) {
				if (telefoonText.getText().matches("^[0]{1}[0-9]{2}[\\-]{1}[0-9]{7}|[0]{1}[0-9]{3}[\\-]{1}[0-9]{6}|[0]{1}[0-9]{9}|[06]{2}[\\-]{1}[0-9]{8}$") && !telefoonText.getText().equals("")) {
					goed8.setVisible(true);
					fout8.setVisible(false);
				}
				else {
					fout8.setVisible(true);
					goed8.setVisible(false);
				} 
			}
		});
		telefoonText.setStyleName("registreerVoornaamText");
		Label geboorte = new Label("Geboortedatum");
		geboorte.addStyleName("registreerLabelOverig");
		final ListBox dag = new ListBox();
		dag.addItem("");
		for (int i=0;i<31;i++) {
			dag.addItem(""+(i+1));}
		dag.addStyleName("registreerTextgeb");
		final ListBox maand = new ListBox();
		maand.addItem("");
		maand.addItem("Januari");
		maand.addItem("Februari");
		maand.addItem("Maart");
		maand.addItem("April");
		maand.addItem("Mei");
		maand.addItem("Juni");
		maand.addItem("Juli");
		maand.addItem("Augustus");
		maand.addItem("September");
		maand.addItem("Oktober");
		maand.addItem("November");
		maand.addItem("December");
		maand.addStyleName("registreerTextgeb");
		final ListBox jaar = new ListBox();
		jaar.addItem("");
		jaar.addStyleName("registreerTextgeb");
		for (int i=1995;i>1900;i--) {
			jaar.addItem(""+i);}
		dag.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
						goed7.setVisible(true);
						fout7.setVisible(false);
					}
					else {
						fout7.setVisible(true);
						goed7.setVisible(false);
					}
				}
			}
		});

		maand.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
						goed7.setVisible(true);
						fout7.setVisible(false);
					}
					else {
						fout7.setVisible(true);
						goed7.setVisible(false);
					}
				}
			}
		});

		jaar.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					goed7.setVisible(true);
					fout7.setVisible(false);
				}
				else {
					fout7.setVisible(true);
					goed7.setVisible(false);
				}
			}
		});

		//Specifiek voor caprooler met auto
		HorizontalPanel horizon27 = new HorizontalPanel();
		HorizontalPanel horizon28 = new HorizontalPanel();
		HorizontalPanel horizon29 = new HorizontalPanel();
		HorizontalPanel horizon30 = new HorizontalPanel();
		HorizontalPanel horizon31 = new HorizontalPanel();
		HorizontalPanel horizon32 = new HorizontalPanel();
		HorizontalPanel horizon33 = new HorizontalPanel();
		HorizontalPanel horizon34 = new HorizontalPanel();
		HorizontalPanel horizon35 = new HorizontalPanel();
		HorizontalPanel horizon36 = new HorizontalPanel();
		HorizontalPanel horizon37 = new HorizontalPanel();
		HorizontalPanel horizon38 = new HorizontalPanel();
		HorizontalPanel horizon39 = new HorizontalPanel();
		HorizontalPanel horizon40 = new HorizontalPanel();
		HorizontalPanel horizon41 = new HorizontalPanel();
		HorizontalPanel horizon42 = new HorizontalPanel();
		HorizontalPanel horizon43 = new HorizontalPanel();
		HorizontalPanel horizon44 = new HorizontalPanel();

		Label empty1 = new Label("");
		empty1.addStyleName("registreermetempty");
		Label empty5 = new Label("");
		empty5.addStyleName("registreermetempty");
		Label empty6 = new Label("");
		empty6.addStyleName("registreermetempty");
		Label empty4 = new Label("");
		empty4.addStyleName("registreermetempty");

		Label title1 = new Label("Wat zijn uw autogegevens?");
		title1.addStyleName("registreren2metTitle3");
		Label title2 = new Label("Wat zijn uw persoonlijke voorkeuren tijdens de reis voor in uw auto?");
		title2.addStyleName("registreren2metTitle4");
		Label merk = new Label("Merk auto:");
		merk.addStyleName("registreer2metMerk");
		final TextBox merkText = new TextBox();
		merkText.addStyleName("registreerMerkText");

		merkText.addKeyUpHandler(new KeyUpHandler() {

			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (merkText.getText().matches("^[a-z]{1}$")) {
					String s = merkText.getText();
					merkText.setText(s.toUpperCase());
				}
				if (!merkText.getText().equals("")) {
					goed13.setVisible(true);
					fout13.setVisible(false);
				}
				else {
					fout13.setVisible(true);
					goed13.setVisible(false);
				}
			}
		});

		Label type = new Label("Type auto:");
		type.addStyleName("registeer2metTypeLab");
		final TextBox typeText = new TextBox();
		typeText.addStyleName("registreer2metTextbox");

		typeText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (typeText.getText().matches("^[a-z]{1}$")) {
					String s = typeText.getText();
					typeText.setText(s.toUpperCase());
				}
				if (!typeText.getText().equals("")) {
					goed14.setVisible(true);
					fout14.setVisible(false);
				}
				else {
					fout14.setVisible(true);
					goed14.setVisible(false);
				}
			}
		});

		Label plaats = new Label("Aantal plaatsen in uw auto incl. chauffeur");
		plaats.addStyleName("registeer2metTypeLab");
		final TextBox plaatsText = new TextBox();
		plaatsText.addStyleName("registreer2metTextbox");
		Label plaatsen = new Label("plaatsen");

		plaatsText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (plaatsText.getText().matches("^[a-z]{1}$")) {
					String s = plaatsText.getText();
					plaatsText.setText(s.toUpperCase());
				}
				if (plaatsText.getText().matches("^[0-9]{1,}$")) {
					goed15.setVisible(true);
					fout15.setVisible(false);
				}
				else {
					fout15.setVisible(true);
					goed15.setVisible(false);
				}
			}
		});

		Label titleprovincie = new Label("Ik rijd door de volgende provincies:");
		final CheckBox drenthe = new CheckBox("Drenthe");
		final CheckBox flevoland = new CheckBox("Flevoland");
		flevoland.setStyleName("reg2checkbox1");
		final CheckBox friesland = new CheckBox("Friesland");
		friesland.setStyleName("reg2checkbox1");
		final CheckBox gelderland = new CheckBox("Gelderland");
		gelderland.setStyleName("reg2checkbox1");
		final CheckBox groningen = new CheckBox("Groningen");
		final CheckBox limburg = new CheckBox("Limburg");
		limburg.setStyleName("reg2checkbox2");
		final CheckBox noordbrabant = new CheckBox("Noord-Brabant");
		noordbrabant.setStyleName("reg2checkbox3");
		final CheckBox noordholland = new CheckBox("Noord-Holland");
		noordholland.setStyleName("reg2checkbox4");
		final CheckBox overijssel = new CheckBox("Overijssel");
		final CheckBox utrecht = new CheckBox("Utrecht");
		utrecht.setStyleName("reg2checkbox5");
		final CheckBox zeeland = new CheckBox("Zeeland");
		zeeland.setStyleName("reg2checkbox6");
		final CheckBox zuidholland = new CheckBox("Zuid-Holland");
		zuidholland.setStyleName("reg2checkbox3");

		drenthe.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(drenthe.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(drenthe.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		flevoland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(flevoland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(flevoland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		friesland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(friesland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(friesland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		gelderland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(gelderland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(gelderland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		groningen.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(groningen.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(groningen.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		limburg.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(limburg.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}	
				}
				if(limburg.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		noordbrabant.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(noordbrabant.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(noordbrabant.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		noordholland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(noordholland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(noordholland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		overijssel.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(overijssel.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(overijssel.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		utrecht.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(utrecht.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(utrecht.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		zeeland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(zeeland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(zeeland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		zuidholland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (zuidholland.getValue() == true){
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if (zuidholland.getValue() == false){
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});


		Label reizen5 = new Label("Reizen:");
		reizen5.addStyleName("registreer2metreizen");
		Label roken5 = new Label("Roken:");
		roken5.addStyleName("registreer2metreizen");
		Label fiets5 = new Label("Fiets");
		fiets5.addStyleName("registreer2metreizen");
		Label commentaar = new Label("Typ hieronder uw overige opmerkingen neer, die gelden voor uw auto. Bijv. bagage:");
		final RadioButton reizen6 = new RadioButton("reizen", "In een keer");
		reizen6.addStyleName("registreer2metreizenradio1");
		final RadioButton reizen7 = new RadioButton("reizen", "Met overnachting");
		reizen7.addStyleName("registreer2metreizenradio2");

		reizen6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen6.getValue() == true){
					labreizen = "in een keer";
					goed17.setVisible(true);

				}
			}
		});
		reizen7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen7.getValue() == true){
					labreizen = "met overnachting";
					goed17.setVisible(true);

				}
			}
		});

		final RadioButton roken6 = new RadioButton("roken", "Ja in auto");
		roken6.addStyleName("registreer2metreizenradio2");
		final RadioButton roken7 = new RadioButton("roken", "Ja, maar niet in auto");
		roken7.addStyleName("registreer2metrokenradio2");
		final RadioButton roken8 = new RadioButton("roken", "Nee");
		roken8.addStyleName("registreer2metrokenradio3");

		roken6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken6.getValue() == true){
					labroken ="ja, in auto";
					goed18.setVisible(true);

				}
			}
		});
		roken7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken7.getValue() == true){
					labroken ="ja, maar niet in auto";
					goed18.setVisible(true);

				}
			}
		});
		roken8.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken8.getValue() == true){
					labroken ="nee";
					goed18.setVisible(true);

				}
			}
		});

		final RadioButton fiets6 = new RadioButton("fiets", "Wel mee");
		fiets6.addStyleName("registreer2metfietsradio1");
		final RadioButton fiets7 = new RadioButton("fiets", "Niet mee");
		fiets7.addStyleName("registreer2metfietsradio1");

		fiets6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets6.getValue() == true){
					labfiets = "wel mee";
					goed19.setVisible(true);

				}
			}
		});
		fiets7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets7.getValue() == true){
					labfiets = "niet mee";
					goed19.setVisible(true);

				}
			}
		});

		final TextArea commentaarText = new TextArea();
		commentaarText.addStyleName("registreren2metcomment");






		Button saveButton = new Button("Wijzig");
		saveButton.addStyleName("ZonderWijzigVoorkeurensaveButton2");

		horizon0.add(titleLab);
		horizon11.add(provincie);
		horizon11.add(provincielijst);
		horizon11.add(goed9);
		horizon11.add(fout9);
		horizon12.add(telefoon);
		horizon12.add(telefoonText);
		horizon12.add(goed8);
		horizon12.add(fout8);
		horizon14.add(geboorte);
		horizon14.add(dag);
		horizon14.add(maand);
		horizon14.add(jaar);
		horizon14.add(goed7);
		horizon14.add(fout7);
		horizon4.add(voornaam);
		horizon4.add(voornaamText);
		horizon4.add(goed0);
		horizon4.add(fout0);
		horizon5.add(achternaam);
		horizon5.add(achternaamText);
		horizon5.add(goed1);
		horizon5.add(fout1);
		horizon6.add(straatnaam);
		horizon6.add(straatnaamText);
		horizon6.add(goed3);
		horizon6.add(fout3);
		horizon7.add(huisnummer);
		horizon7.add(huisnummerText);
		horizon7.add(goed4);
		horizon7.add(fout4);
		horizon15.add(postcode);
		horizon15.add(postcodeText);
		horizon15.add(goed5);
		horizon15.add(fout5);
		horizon8.add(woonplaats);
		horizon8.add(woonplaatsText);
		horizon8.add(goed6);
		horizon8.add(fout6);
		horizon27.add(title1);
		horizon28.add(title2);
		horizon29.add(empty1);
		horizon30.add(merk);
		horizon30.add(merkText);
		horizon30.add(goed13);
		horizon30.add(fout13);
		horizon31.add(type);
		horizon31.add(typeText);
		horizon31.add(goed14);
		horizon31.add(fout14);
		horizon32.add(plaats);
		horizon32.add(plaatsText);
		horizon32.add(plaatsen);
		horizon32.add(goed15);
		horizon32.add(fout15);
		horizon33.add(empty5);
		horizon34.add(titleprovincie);
		horizon35.add(drenthe);
		horizon35.add(flevoland);
		horizon35.add(friesland);
		horizon35.add(gelderland);
		horizon36.add(groningen);
		horizon36.add(limburg);
		horizon36.add(noordbrabant);
		horizon36.add(noordholland);
		horizon36.add(goed16);
		horizon36.add(fout16);
		horizon37.add(overijssel);
		horizon37.add(utrecht);
		horizon37.add(zeeland);
		horizon37.add(zuidholland);
		horizon38.add(empty6);
		horizon39.add(reizen5);
		horizon39.add(reizen6);
		horizon39.add(reizen7);
		horizon39.add(goed17);
		horizon40.add(roken5);
		horizon40.add(roken6);
		horizon40.add(roken7);
		horizon40.add(roken8);
		horizon40.add(goed18);
		horizon41.add(fiets5);
		horizon41.add(fiets6);
		horizon41.add(fiets7);
		horizon41.add(goed19);
		horizon42.add(empty4);
		horizon43.add(commentaar);
		horizon44.add(commentaarText);
		horizon44.add(saveButton);

		vertical1.add(horizon0);
		vertical1.add(horizon4);
		vertical1.add(horizon5);
		vertical1.add(horizon14);
		vertical1.add(horizon6);
		vertical1.add(horizon7);
		vertical1.add(horizon15);
		vertical1.add(horizon8);
		vertical1.add(horizon11);
		vertical1.add(horizon12);
		vertical1.add(horizon1);
		vertical1.add(horizon2);
		vertical1.add(horizon3);
		vertical1.add(horizon27);
		vertical1.add(horizon28);
		vertical1.add(horizon29);
		vertical1.add(horizon30);
		vertical1.add(horizon31);
		vertical1.add(horizon32);
		vertical1.add(horizon33);
		vertical1.add(horizon34);
		vertical1.add(horizon35);
		vertical1.add(horizon36);
		vertical1.add(horizon37);
		vertical1.add(horizon38);
		vertical1.add(horizon39);
		vertical1.add(horizon40);
		vertical1.add(horizon41);
		vertical1.add(horizon42);
		vertical1.add(horizon43);
		vertical1.add(horizon44);


		vertical1.addStyleName("ZonderWijzigVoorkeurenVertical1");	
		eindPanel.add(vertical1);

		AsyncCallback<ArrayList<String>> BekendeAccountGegevens = new AsyncCallback<ArrayList<String>>() {
			@Override
			public void onFailure(Throwable caught) {
				// TODO Auto-generated method stub
			}
			@Override
			public void onSuccess(ArrayList<String> result) {
				for(String r:result){
					String[] gesplitteResultaat = r.split("\\:\\*\\:");
					voornaamText.setText(gesplitteResultaat[0]);
					achternaamText.setText(gesplitteResultaat[1]);
					dag.setSelectedIndex(Integer.parseInt(gesplitteResultaat[2]));
					maand.setSelectedIndex(Integer.parseInt(gesplitteResultaat[3]));
					jaar.setSelectedIndex(1996-Integer.parseInt(gesplitteResultaat[4]));
					straatnaamText.setText(gesplitteResultaat[5]);
					huisnummerText.setText(gesplitteResultaat[6]);
					postcodeText.setText(gesplitteResultaat[7]);
					woonplaatsText.setText(gesplitteResultaat[8]);
					merkText.setText(gesplitteResultaat[14]);
					typeText.setText(gesplitteResultaat[15]);
					plaatsText.setText(gesplitteResultaat[16]);
					if(gesplitteResultaat[17].equals("Geen commentaar opgegeven")){
						commentaarText.setText("");
					}
					if(!(gesplitteResultaat[17].equals("Geen commentaar opgegeven"))){
						commentaarText.setText(gesplitteResultaat[18]);
					}
					int provincienummer = 0;
					if (gesplitteResultaat[9].equals("Drenthe")) {
						provincienummer = 1;
					}
					if (gesplitteResultaat[9].equals("Flevoland")) {
						provincienummer = 2;
					}
					if (gesplitteResultaat[9].equals("Friesland")) {
						provincienummer = 3;
					}
					if (gesplitteResultaat[9].equals("Gelderland")) {
						provincienummer = 4;
					}
					if (gesplitteResultaat[9].equals("Groningen")) {
						provincienummer = 5;
					}
					if (gesplitteResultaat[9].equals("Limburg")) {
						provincienummer = 6;
					}
					if (gesplitteResultaat[9].equals("Noord-Brabant")) {
						provincienummer = 7;
					}
					if (gesplitteResultaat[9].equals("Noord-Holland")) {
						provincienummer = 8;
					}
					if (gesplitteResultaat[9].equals("Overijsel")) {
						provincienummer = 9;
					}
					if (gesplitteResultaat[9].equals("Utrecht")) {
						provincienummer = 10;
					}
					if (gesplitteResultaat[9].equals("Zeeland")) {
						provincienummer = 11;
					}
					if (gesplitteResultaat[9].equals("Zuid-Holland")) {
						provincienummer = 11;
					}
					provincielijst.setSelectedIndex(provincienummer);
					telefoonText.setText(gesplitteResultaat[10]);
					if (gesplitteResultaat[11].equals("wel mee")){
						fiets6.setValue(true);
						labfiets="wel mee";
					}
					if (gesplitteResultaat[11].equals("niet mee")){
						fiets7.setValue(true);
						labfiets="niet mee";
					}
					if (gesplitteResultaat[12].equals("in een keer")){
						reizen6.setValue(true);
						labreizen = "in een keer";
					}
					if (gesplitteResultaat[12].equals("met overnachting")){
						reizen7.setValue(true);
						labreizen ="met overnachting";
					}
					if (gesplitteResultaat[13].equals("ja, in auto")){
						roken6.setValue(true);
						labroken ="ja, in auto";
					}
					if (gesplitteResultaat[13].equals("ja, maar niet in auto")){
						roken7.setValue(true);
						labroken = "ja, maar niet in auto";
					}
					if (gesplitteResultaat[13].equals("nee")){
						roken8.setValue(true);
						labroken ="nee";
					}
					AsyncCallback<boolean[]> getProvincieGegevens = new AsyncCallback<boolean[]>() {
						@Override
						public void onFailure(Throwable caught) {
							// TODO Auto-generated method stub
						}
						@Override
						public void onSuccess(boolean[] result) {
							if(result[0]==true){
								drenthe.setValue(true);
								aantalCheckBox++;
							}
							if(result[1]==true){
								flevoland.setValue(true);
								aantalCheckBox++;
							}
							if(result[2]==true){
								friesland.setValue(true);
								aantalCheckBox++;
							}
							if(result[3]==true){
								gelderland.setValue(true);
								aantalCheckBox++;
							}
							if(result[4]==true){
								groningen.setValue(true);
								aantalCheckBox++;
							}
							if(result[5]==true){
								limburg.setValue(true);
								aantalCheckBox++;
							}
							if(result[6]==true){
								noordbrabant.setValue(true);
								aantalCheckBox++;
							}
							if(result[7]==true){
								noordholland.setValue(true);
								aantalCheckBox++;
							}
							if(result[8]==true){
								overijssel.setValue(true);
								aantalCheckBox++;
							}
							if(result[9]==true){
								utrecht.setValue(true);
								aantalCheckBox++;
							}
							if(result[10]==true){
								zeeland.setValue(true);
								aantalCheckBox++;
							}
							if(result[11]==true){
								zuidholland.setValue(true);
								aantalCheckBox++;
							}
						}
					};
					MH.thema.myService.getProvincieArray(email, getProvincieGegevens);
				}
			}
		};
		MH.thema.myService.MetbekendeGegevensWijzigen(email, BekendeAccountGegevens);

		saveButton.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(goed0.isVisible()==true&&goed1.isVisible()==true&&goed3.isVisible()==true&&goed4.isVisible()==true&&goed5.isVisible()==true&&goed6.isVisible()==true&&goed7.isVisible()==true&&goed8.isVisible()==true&&goed9.isVisible()==true&&goed13.isVisible()==true&&goed14.isVisible()==true&&goed15.isVisible()==true&&goed16.isVisible()==true&&goed17.isVisible()==true&&goed18.isVisible()==true&&goed19.isVisible()==true){
					boolean b = Window.confirm("Weet u zeker dat u deze gegevens wilt wijzigen?");
					if(b == true){
						int dg = 0;
						int jr = 0;
						int mnd = 0;
						if(maand.isItemSelected(1)){
							mnd = 0;
						}
						if(maand.isItemSelected(2)){
							mnd = 1;
						}
						if(maand.isItemSelected(3)){
							mnd = 2;
						}
						if(maand.isItemSelected(4)){
							mnd = 3;
						}
						if(maand.isItemSelected(5)){
							mnd = 4;
						}
						if(maand.isItemSelected(6)){
							mnd = 5;
						}
						if(maand.isItemSelected(7)){
							mnd = 6;
						}
						if(maand.isItemSelected(8)){
							mnd = 7;
						}
						if(maand.isItemSelected(9)){
							mnd = 8;
						}
						if(maand.isItemSelected(10)){
							mnd = 9;
						}
						if(maand.isItemSelected(11)){
							mnd = 10;
						}
						if(maand.isItemSelected(12)){
							mnd = 11;
						}
						jr = Integer.parseInt(jaar.getValue(jaar.getSelectedIndex()));
						dg = 1+Integer.parseInt(dag.getValue(dag.getSelectedIndex()));
						Date nu = new Date();
						int nuw = nu.getYear();
						final Date geb = new Date(jr, mnd, dg);
						if(nuw - (jr-1900) > 17){
							String vrnm = voornaamText.getText();
							String achtrnm = achternaamText.getText();
							String strnm = straatnaamText.getText();
							String nr = huisnummerText.getText();
							String pstcd = postcodeText.getText();
							String wnplts = woonplaatsText.getText();
							String prvnc = provincielijst.getValue(provincielijst.getSelectedIndex());
							String tlnmr = telefoonText.getText();
							String autoMerk = merkText.getText();
							String autoType = typeText.getText();
							int autoPlaatsen = Integer.parseInt(plaatsText.getText());
							String comment = commentaarText.getText();
							if(comment.trim().equals("")){
								comment = "Geen commentaar opgegeven";
							}
							if(zeeland.getValue() == true){
								provincies[10] = true;
							}
							if(zeeland.getValue() == false){
								provincies[10] = false;
							}
							if (zuidholland.getValue() == true){
								provincies[11] = true;
							}
							if (zuidholland.getValue() == false){
								provincies[11] = false;
							}
							if(utrecht.getValue() == false){
								provincies[9] = false;
							}
							if(utrecht.getValue() == true){
								provincies[9] = true;
							}
							if(overijssel.getValue() == false){
								provincies[8] = false;
							}
							if(overijssel.getValue() == true){
								provincies[8] = true;
							}
							if(noordholland.getValue() == false){
								provincies[7] = false;
							}
							if(noordholland.getValue() == true){
								provincies[7] = true;
							}
							if(noordbrabant.getValue() == false){
								provincies[6] = false;
							}
							if(noordbrabant.getValue() == true){
								provincies[6] = true;
							}
							if(limburg.getValue() == false){
								provincies[5] = false;
							}
							if(limburg.getValue() == true){
								provincies[5] = true;
							}
							if(groningen.getValue() == false){
								provincies[4] = false;
							}
							if(groningen.getValue() == true){
								provincies[4] = true;
							}
							if(gelderland.getValue() == false){
								provincies[3] = false;
							}
							if(gelderland.getValue() == true){
								provincies[3] = true;
							}
							if(friesland.getValue() == false){
								provincies[2] = false;
							}
							if(friesland.getValue() == true){
								provincies[2] = true;
							}
							if(flevoland.getValue() == false){
								provincies[1] = false;
							}
							if(flevoland.getValue() == true){
								provincies[1] = true;
							}
							if(drenthe.getValue() == false){
								provincies[0] = false;
							}
							if(drenthe.getValue() == true){
								provincies[0] = true;
							}
							AsyncCallback<Boolean> WijzigGegevensMetAuto = new AsyncCallback<Boolean>() {
								@Override
								public void onFailure(Throwable caught) {
									// TODO Auto-generated method stub
								}
								@Override
								public void onSuccess(Boolean result) {
									if(result == true){
										Window.alert("Gegevens succesvol gewijzigd");
										MH.showHomeMet(email);
									}
									if(result==false){
										Window.alert("We hebben uw gegevens niet kunnen");
									}
								}
							};
							MH.thema.myService.WijzigGegevensCarpoolerMetAuto(email, vrnm, achtrnm, geb, strnm, nr, pstcd, wnplts, prvnc, tlnmr, labreizen, labroken, labfiets, autoMerk, autoType, autoPlaatsen, provincies, comment, WijzigGegevensMetAuto);
						}
					}
				}
			}
		});
		return eindPanel;
	}
}